import http from "@/utils/http"
import OSS from "ali-oss"
const prefixUrl = process.env.NODE_ENV === 'development' ? "/ali" : ""

export default {
    sts() {
        return http.get(prefixUrl + "/app/aliyun/sts/token2")
    },

    upload(data) {
        return this.sts()
            .then((res) => {
                return upload(data, res)
            })
    }


}

function createClient(res) {
    return new OSS({
        // yourRegion填写Bucket所在地域。以华东1（杭州）为例，Region填写为oss-cn-hangzhou。
        region: 'oss-cn-chengdu',
        // 从STS服务获取的临时访问密钥（AccessKey ID和AccessKey Secret）。
        accessKeyId: res.AccessKeyId,
        accessKeySecret: res.AccessKeySecret,
        // 从STS服务获取的安全令牌（SecurityToken）。
        stsToken: res.SecurityToken,
        // 填写Bucket名称。
        bucket: 'shengxp'
    });

}


function upload(data, res) {
    const client = createClient(res);
    try {
        // 填写Object完整路径。Object完整路径中不能包含Bucket名称。
        // 您可以通过自定义文件名（例如exampleobject.txt）或文件完整路径（例如exampledir/exampleobject.txt）的形式实现将数据上传到当前Bucket或Bucket中的指定目录。
        // data对象可以自定义为file对象、Blob数据或者OSS Buffer。

        let dirPath = 'background-system/avatar'
        let path = `${dirPath}/${new Date().getTime().toString(32)}`
        return client.put(path, data);

    } catch (e) {
        console.log(e);
    }
}